package com.pm.common.utils;

import com.alibaba.fastjson2.JSONObject;
import com.pm.common.config.ParamConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;
import java.util.List;

@Slf4j
@Component
public class WeChatNoteUtils {

    @Resource
    private ParamConfig paramConfig;

    @Resource
    private RestTemplate restTemplate;

    /**
     * 通过企业微信绑定的手机号码发现企业微信消息通知
     * @param phone    电话号码
     * @param contents 消息字符串List
     * @return
     */
    public void sendWeChatNoteByPhone( String phone,List<String> contents){
        String url=paramConfig.getUrl()+paramConfig.getByPhone();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("sysName",paramConfig.getSysName());
        jsonObject.put("toUserPhone",phone);
        jsonObject.put("contents",contents);
        ResponseEntity<JSONObject> result = restTemplate.postForEntity(url, jsonObject, JSONObject.class);
        JSONObject body = result.getBody();
        if(!body.get("code").equals(200)){
            log.error("通过手机号码发送企业微信消息通知失败:请求参数为"+jsonObject+";返回结果为:"+body);
        }
    }

    /**
     * 通过工号发送企业微信消息通知
     * @param jobNumber 工号List
     * @param contents 消息字符串List
     * @return
     */
    public void sendWeChatNoteByJobNumber(List<String> jobNumber, List<String> contents){
        String url=paramConfig.getUrl()+paramConfig.getByJobNumber();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("sysName",paramConfig.getSysName());
        jsonObject.put("toUsers",jobNumber);
        jsonObject.put("contents",contents);
        ResponseEntity<JSONObject> result = restTemplate.postForEntity(url, jsonObject, JSONObject.class);
        JSONObject body = result.getBody();
        if(!body.get("code").equals(200)){
            log.error("通过工号发送企业微信消息通知失败:请求参数为"+jsonObject+";返回结果为:"+body);
        }
    }

}
